app_family.controller("controller_familyapp", function($scope, $anchorScroll, $location) {
	console.log('this is controller of page_尾部.');
	
	// 当前属于底部导航中的哪一个模块
	$scope.$on('currentModule', function(ev, v){
        $scope.currentModule = v;
	});
	
	// 是否显示底部导航
	$scope.$on('footerFlag', function(ev, v){
        $scope.footerFlag = v;
	});
	
	// 代付订单数量 显示在底部导航上
	$scope.$on('orderforPayingNum', function(ev, v){
        $scope.orderforPayingNum = v;
	});
	
	data_sessionStorage = JSON.parse(sessionStorage.getItem('data_sessionStorage'));
	// 底部的订单导航点击事件
	$scope.gotoOrder = function () {
		// 指定订单列表显示预定服务的tab
		data_sessionStorage.record_page.page_ordertype = '';
    	sessionStorage.setItem('data_sessionStorage', JSON.stringify(data_sessionStorage));
    	
    	// 跳转到订单列表
		$location.path('/orderlist');
		$scope.$apply();
	};
});


/**
 * angular数据渲染完成前 loading显示
 * angular数据渲染完成后 loading消失
 * (angular提供两种拦截器：成功拦截器（request、response） 失败拦截器（requestError、responseError）)
 */
app_family.factory('loadingFlag', ["$rootScope", function ($rootScope) {
	$rootScope.$on("$routeChangeSuccess", function (event, currentRoute, previousRoute) {
	    window.scrollTo(0, 0);
	});
	var loadingFlag = {
	    request: function (config) {               // 发起请求
	        $rootScope.loading = true;             // 用$rootScope定义的值可以在各个controller中使用
	        return config;
	    },
	    response: function (response) {            // 请求成功回调
	    	$rootScope.loading = false;			   // 用$rootScope定义的值可以在各个controller中使用
	        return response;
	    },
	    responseError : function (response) {      // 请求失败回调
	    	$rootScope.loading = false;            // 用$rootScope定义的值可以在各个controller中使用
	    	$.dialog.showToast({
				msgTxt : '出错啦！(状态码:' + response.status + ')',
				maskOpacity : '0.1'
			});
	        return response;
	    }
	};
    return loadingFlag;
}]);

/**
 * 图片404的情况处理
 */
app_family.directive('img', function () {
    return {
        restrict: 'E',        
        link: function (scope, element, attrs) {     
            // show an image-missing image
            element.error(function () {
                var w = element.width();
                var h = element.height();
                // using 20 here because it seems even a missing image will have ~18px width 
                // after this error function has been called
                if (w <= 20) { w = 100; }
                if (h <= 20) { h = 100; }
                var url = '';
                element.prop('src', basepath + 'resources/images/image-error.png');
            });
        }
    }
});

/**
 * 配置页面路由
 */
function loadjs (jsurl) {
	var obj = {
		delay : function ($q) {
			var delay = $q.defer(),
		    load = function(){
		        $.getScript(JSbasePath + jsurl, function(){
		            delay.resolve();
		        });
		    };
		    load();
		    return delay.promise;
		}
	};
	
	return obj;
};

app_family.config(function ($routeProvider, $httpProvider) {
	// 首页
    $routeProvider.when('/home', {
	    templateUrl : 'home.html',
	    resolve: loadjs('/home.js')
	})
	// 养老机构详细信息
	.when('/organizationinfo', {
	    templateUrl : 'organizationinfo.html',
	    resolve: loadjs('/organizationinfo.js')
	})
	// 一键呼叫
	.when('/call', {
	    templateUrl : 'call.html',
	    resolve: loadjs('/call.js')
	})
	/**
	 * 模块--我的
	 */
	// 我的
	.when('/mine', {
	    templateUrl : 'mine.html',
	    resolve: loadjs('/mine.js')
	})
	// 我的
	.when('/myfamily', {
	    templateUrl : 'myfamily/myfamily.html',
	    resolve: loadjs('/myfamily/myfamily.js')
	})
	// 家属个人信息维护
	.when('/familyinfo', {
	    templateUrl : 'familyinfo.html',
	    resolve: loadjs('/familyinfo.js')
	})
	// 我的日常信息
	.when('/familydata', {
	    templateUrl : 'myfamily/familydata.html',
	    resolve: loadjs('/myfamily/familydata.js')
	})
	// 我的日常信息-居家-日常消费
	.when('/dataorder', {
	    templateUrl : 'myfamily/dataorder.html',
	    resolve: loadjs('/myfamily/dataorder.js')
	})
	// 我的日常信息-居家-生活日历
	.when('/datacalendar', {
	    templateUrl : 'myfamily/datacalendar.html',
	    resolve: loadjs('/myfamily/datacalendar.js')
	})
	// 我的日常信息-居家-健康小屋
	.when('/datahealthroom', {
	    templateUrl : 'myfamily/datahealthroom.html',
	    resolve: loadjs('/myfamily/datahealthroom.js')
	})
	// 我的日常信息-居家-健康小屋-统计图
	.when('/datahealthroomchart', {
	    templateUrl : 'myfamily/datahealthroomchart.html',
	    resolve: loadjs('/myfamily/datahealthroomchart.js')
	})
	// 我的日常信息-院内-日常消费
	.when('/datadailyconsum', {
	    templateUrl : 'myfamily/datadailyconsum.html',
	    resolve: loadjs('/myfamily/datadailyconsum.js')
	})
	// 我的日常信息-院内-护理实绩
	.when('/datanurse', {
	    templateUrl : 'myfamily/datanurse.html',
	    resolve: loadjs('/myfamily/datanurse.js')
	})
	// 我的日常信息-院内-订餐明细
	.when('/datarest', {
	    templateUrl : 'myfamily/datarest.html',
	    resolve: loadjs('/myfamily/datarest.js')
	})
	// 我的日常信息-院内-生命体征
	.when('/datavitalsign', {
	    templateUrl : 'myfamily/datavitalsign.html',
	    resolve: loadjs('/myfamily/datavitalsign.js')
	})
	
	/**
	 * 模块--基础评估
	 */
	// 选择
	.when('/oldersel', {
	    templateUrl : 'assess/oldersel.html',
	    resolve: loadjs('/assess/oldersel.js')
	})
	// 基础评估1-日常评估
	.when('/firstassess1', {
	    templateUrl : 'assess/firstassess1.html',
	    resolve: loadjs('/assess/firstassess1.js')
	})
	// 基础评估1-精神状态
	.when('/firstassess2', {
	    templateUrl : 'assess/firstassess2.html',
	    resolve: loadjs('/assess/firstassess2.js')
	})
	// 基础评估1-感知觉与沟通
	.when('/firstassess3', {
	    templateUrl : 'assess/firstassess3.html',
	    resolve: loadjs('/assess/firstassess3.js')
	})
	// 基础评估1-社会参与
	.when('/firstassess4', {
	    templateUrl : 'assess/firstassess4.html',
	    resolve: loadjs('/assess/firstassess4.js')
	})
	// 基础评估2-能力等级进一步判断
	.when('/secondassess', {
	    templateUrl : 'assess/secondassess.html',
	    resolve: loadjs('/assess/secondassess.js')
	})
	// 评估结果
	.when('/assessresult', {
	    templateUrl : 'assess/assessresult.html',
	    resolve: loadjs('/assess/assessresult.js')
	})
	// 评估记录
	.when('/assesshistory', {
	    templateUrl : 'assess/assesshistory.html',
	    resolve: loadjs('/assess/assesshistory.js')
	})
	// 健康建议
	.when('/assessadvice', {
	    templateUrl : 'assess/assessadvice.html',
	    resolve: loadjs('/assess/assessadvice.js')
	})
	
	/**
	 * 模块--亲情互动
	 */
	// 发送消息
	.when('/addmessage', {
	    templateUrl : 'chat/addmessage.html',
	    resolve: loadjs('/chat/addmessage.js')
	})
	// 绑定
	.when('/bind', {
	    templateUrl : 'chat/bind.html',
	    resolve: loadjs('/chat/bind.js')
	})
	// 基础信息维护
	.when('/olderinfo', {
	    templateUrl : 'chat/olderinfo.html',
	    resolve: loadjs('/chat/olderinfo.js')
	})
	
	/**
	 * 模块--预订服务
	 */
	// 订单列表
	.when('/orderlist', {
	    templateUrl : 'order/orderlist.html',
	    resolve: loadjs('/order/orderlist.js')
	})
	// 订单详情
	.when('/orderdetail', {
	    templateUrl : 'order/orderdetail.html',
	    resolve: loadjs('/order/orderdetail.js')
	})
	// 选择需要预订服务的
	.when('/orderoldsel', {
	    templateUrl : 'order/orderoldsel.html',
	    resolve: loadjs('/order/orderoldsel.js')
	})
	// 选择服务
	.when('/orderservsel', {
	    templateUrl : 'order/orderservsel.html',
	    resolve: loadjs('/order/orderservsel.js')
	})
	// 选择服务商
	.when('/orderstoresel', {
	    templateUrl : 'order/orderstoresel.html',
	    resolve: loadjs('/order/orderstoresel.js')
	})
	// 订单确认
	.when('/orderconfirm', {
	    templateUrl : 'order/orderconfirm.html',
	    resolve: loadjs('/order/orderconfirm.js')
	})
	
	// 404页面
	.when('/404', {
	    templateUrl : '404.html'
	}).otherwise({
	    redirectTo: '/404'
	});
    
    /**
     * 使用$httpProvider在.config函数中注册拦截器 
     * 主要用来拦截404错误 并进行处理
     */
    $httpProvider.interceptors.push('loadingFlag');
});
